import Cookies from 'js-cookie'

const TokenKey = 'project-management-token'

// 获取token
export function getToken(): string | undefined {
  return Cookies.get(TokenKey)
}

// 设置token
export function setToken(token: string): string | undefined {
  return Cookies.set(TokenKey, token, { expires: 7 }) // 7天过期
}

// 移除token
export function removeToken(): void {
  return Cookies.remove(TokenKey)
}

// 检查token是否有效
export function isTokenValid(): boolean {
  const token = getToken()
  if (!token) return false
  
  try {
    // 解析JWT token的payload部分
    const payload = JSON.parse(atob(token.split('.')[1]))
    const currentTime = Date.now() / 1000
    
    // 检查是否过期
    return payload.exp > currentTime
  } catch (error) {
    return false
  }
}

// 从token中获取用户信息
export function getUserFromToken(): any {
  const token = getToken()
  if (!token) return null
  
  try {
    const payload = JSON.parse(atob(token.split('.')[1]))
    return payload
  } catch (error) {
    return null
  }
}

// 检查用户是否有指定权限
export function hasPermission(permission: string | string[]): boolean {
  // 这里需要从用户store或其他地方获取用户权限
  // 暂时返回true，实际应该根据用户权限判断
  return true
}